package com.wonder.tools.model;

import java.util.List;
import java.util.Map;


import com.wonder.admin.constant.Parameters;
import com.wonder.admin.domain.SysAction;
import com.wonder.admin.domain.SysApi;
import com.wonder.admin.domain.SysField;
import com.wonder.admin.domain.SysMenu;

import lombok.Data;

@Data
public class ModuleInfo {
	/**
	 * 是否使用SWAGGER
	 */
	private boolean isSwagger;
	
	
	/**
	 * 是否有下拉列表用SQL
	 */
	private boolean isHaveSql=false;
	
	/**
	 * 表前缀
	 */
	private String prefix;
	
	/**
	 * 作者
	 */
	private String author;
	
	/**
	 * 基本包名
	 */
	private String basePackageName;
	
	
	/**
	 * 生成代码模块名是否去除前缀
	 */
	private boolean removePrefix;
	
	
	
	/**
	 * 是否启用多语言
	 */
	private boolean isI118;
	
	
	/**
	 * 是否覆盖现有代码文件
	 */
	private boolean overwriteExist;
	
	/**
	 * # 生成VUE的上级目录,Controller的主路径
	 */
	private String appFolder;
	
	
	/**
	 * # Package name
	 */
	private String entityUrl;
	
	
	/**
	 * # Package name
	 */
	private String daoUrl;
	
	
	
	/**
	 * # Package name
	 */
	private String serviceUrl;
	
	
	/**
	 * # Package name
	 */
	private String serviceImplUrl;
	
	
	/**
	 * # Package name
	 */
	private String controllerUrl;
	
	
	/**
	 * # Api Package name
	 */
	private String apiControllerUrl;
	
	
	/**
	 * # Package name
	 */
	private String voUrl;
	
	
	/**
	 * # Package name
	 */
	private String requestUrl;
	
	/**
	 * API对外接口列表
	 */
	private  List<SysApi> apiList;	
	/**
	 * 字段列表
	 */
	private  List<SysField> fieldList;
	
	/**
	 * 模块方法列表
	 */
	private  List<SysAction> actionList;
	
	/**
	 * 系统默认模块方法
	 */
	private  List<Map<String, Object>> actions=Parameters.actionList();
	
	/**
	 * 生成文件列表
	 */
	private  List<Map<String, String>> fileList;
	
	
	/**
	 * 列表中的Joint table和表别面
	 */
	private  List<Map<String, String>> tableList;
	
	/**
	 * 模块基本信息
	 */
	private  SysMenu menuInfo;
	
	
	/**
	 * 当前模块方法
	 */
	private  SysAction currentAction;
	
	
	/**
	 * 模块名
	 */
	private  String entityName;
	
	
	/**
	 * Random number
	 */
	private String randomSerial;
	

	
	/**
	 * 模块主键
	 */
	private  String pk;
	
	
	/**
	 * 数据库字段列表
	 */
	private List<Map<String, Object>> tableFields;
		
	/**
	 * 主表列表字段
	 */
	private List<Map<String, String>> columns;
	
	/**
	 * 主表列表字段字符串
	 */
	private String fields;
	
	
	/**
	 * 主表列表字段字符串
	 */
	private List<String> fieldArray;
	
	/**
	 * 多表SQL语句，用于LIST
	 */
	private String jointSql;
	
	/**
	 * Left join table list
	 */
	private List<Map<String, Object>> joinTableInfo;
	
	
	private String version;
	
	private String project;
		
	/**
	 * 存储的对应文件名
	 */
	private Map<String, String> filePath;
	
	/**
	 * ZIP对应文件名
	 */
	private Map<String, String> zipFilePath;
	
	
	

	


}
